﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;

namespace Pe.Petecos.Comercial.Cross.Core.Constantes
{
    public sealed class DatosConstantes
    {
        /// <summary>
        /// Constantes de parametros generales
        /// </summary>
        public sealed class Parametro
        {
            public static readonly int EstadoGenerico = 1;
            public static readonly int EstadoEvento = 2;
            public static readonly int TipoEvento = 3;
            public static readonly int TipoProyecto = 3;
            public static readonly int CategoriaArticulo = 4;
            public static readonly int Moneda = 5;
            public static readonly int EstadoOrdenCompra = 6;
            public static readonly int EstadoComprobantePago = 7;
            public static readonly int EstadoGastoPersonalProyecto = 8;
            public static readonly int TipoComprobantePago = 9;
            public static readonly int TipoGastoPersonalProyecto = 10;
            public static readonly int EmailAdministradores = 11;
            public static readonly int EstadoProyecto = 12;
            public static readonly int TipoDePagoComprobantePago = 13;
        }

        public sealed class EstadoGenerico
        {
            public static readonly string Activo = "A";
            public static readonly string Inactivo = "I";
        }

        public sealed class EstadoEvento
        {
            public static readonly string Registrado = "R";
            public static readonly string PreAprobado = "P";
            public static readonly string Aprobado = "A";
            public static readonly string Aceptado = "O";
            //public static readonly string Cerrado = "C";
            public static readonly string Eliminado = "E";
        }

        public sealed class EstadoOrdenCompra
        {
            public static readonly string Generado = "R";
            public static readonly string Aprobado = "A";
            public static readonly string Eliminado = "E";
        }

        public sealed class EstadoComprobantePago
        {
            public static readonly string Registrado = "R";
            public static readonly string PreAprobado = "P";
            public static readonly string Aprobado = "A";
            public static readonly string Aceptado = "O";
            //public static readonly string Cerrado = "C";
            public static readonly string Eliminado = "E";
        }

        public sealed class EstadoGastoPersonalProyecto
        {
            public static readonly string Registrado = "R";
            public static readonly string Confirmado = "C";
            public static readonly string Aprobado = "A";
            public static readonly string Eliminado = "E";
        }

        public sealed class TipoGastoPersonalProyecto
        {
            public static readonly string Imprevisto = "G";
            public static readonly string Efectivo = "S";
        }

        public sealed class EstadoProyecto
        {
            public static readonly string Registrado = "R";
            public static readonly string PreAprobado = "P";
            public static readonly string Aprobado = "A";
            //public static readonly string Aceptado = "O";
            //public static readonly string Cerrado = "C";
            public static readonly string Eliminado = "E";
            public static readonly string Generado = "G";
        }
                
        public sealed class TipoDePagoComprobante
        {
            public static readonly string Adelanto = "A";
            public static readonly string Cuota = "C";            
        }        

        public sealed class EstadoLogueo
        {
            public static readonly int Exito = 0;
            public static readonly int CuentaIncorrecta = 1;
            public static readonly int ContrasenaIncorrecta = 2;
        }

        public sealed class Perfil
        {
            public static readonly int Administrador = 1;
            public static readonly int Registrador = 2;
            public static readonly int Aprobador = 3;
            public static readonly int PreAprobador = 4;
        }

        public sealed class Monto
        {
            public static readonly decimal Igv = 0.18M;
            public static readonly decimal Detraccion = 0.10M;
        }

        public sealed class ConfiguracionSendMail
        {
            /// <summary>
            /// ConexionSegura_SMTP
            /// </summary>
            public static readonly string ConexionSegura_SMTP = ConfigurationManager.AppSettings["CONEXION_SEGURA_SMTP"];
            /// <summary>
            /// ServidorSMTP
            /// </summary>
            public static readonly string ServidorSMTP = ConfigurationManager.AppSettings["SERVIDOR_SMTP"];
            /// <summary>
            /// NombreUsuarioSMTP
            /// </summary>
            public static readonly string NombreUsuarioSMTP = ConfigurationManager.AppSettings["NOMBRE_USUARIO_SMTP"];
            /// <summary>
            /// UsuarioSMTP
            /// </summary>
            public static readonly string UsuarioSMTP = ConfigurationManager.AppSettings["USUARIO_SMTP"];
            /// <summary>
            /// EmailUsuarioSMTP
            /// </summary>
            public static readonly string EmailUsuarioSMTP = ConfigurationManager.AppSettings["EMAIL_USUARIO_SMTP"];
            /// <summary>
            /// PasswordSMTP
            /// </summary>
            public static readonly string PasswordSMTP = ConfigurationManager.AppSettings["PASSWORD_SMTP"];
            /// <summary>
            /// Puerto_SMTP
            /// </summary>
            public static readonly string Puerto_SMTP = ConfigurationManager.AppSettings["PUERTO_SMTP"];
        }
    }
}
